package org.fage.semples.util;
import java.util.Arrays;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class AOPTest {
	
	@Pointcut("execution(* org.fage.semples.web.*.add(..))")
	private void addMethod(){
	}//添加切入点
	@Before("addMethod()")
	public void addBeforeLog(){
		System.out.println("---系统：准备进入保存方法----");
	}
	@After("addMethod()")
	public void addAfterLog(JoinPoint p){
		System.out.println("---目标方法:"+p.getSignature().getDeclaringTypeName()+"."+p.getSignature().getName()+"---");
		System.out.println("------参数为："+Arrays.toString(p.getArgs())+"-----");
	}
	
	@Pointcut("execution(* org.fage.semples.web.*.edit(..))")
	private void editMethod(){
	}
	@Before("editMethod()")
	public void editBeforeLog(){
		System.out.println("---系统：准备进入保存方法----");
	}
	@After("editMethod()")
	public void editAfterLog(JoinPoint p){
		System.out.println("---目标方法:"+p.getSignature().getDeclaringTypeName()+"."+p.getSignature().getName()+"---");
		System.out.println("------参数为："+Arrays.toString(p.getArgs())+"-----");
	}
}
